package edu.cuit.campus.admin.service;

import com.github.pagehelper.PageInfo;
import edu.cuit.campus.entity.po.JobCategory;
import edu.cuit.campus.entity.vo.JobCategoryView;

import java.util.List;

/**
 * 职位类别业务接口
 * @author <a href="mailto:1020zhaodan@163.com">Adan</a>
 * @version 1.0
 * @date 2025/8/9 13:54
 */
public interface JobCategoryService {
    /**
     * 职位类别分页列表
     * @param pageIndex 起始页
     * @param pageSize 页面大小
     * @return 职位类别分页信息
     */
    PageInfo<JobCategoryView> page(int pageIndex, int pageSize);

    /**
     * 按照条件职位类别分页列表信息加载
     * @param pageIndex 起始页
     * @param pageSize 页面大小
     * @param cateGoryName 职位类别名称
     * @return 符合条件的职位类别分页信息
     */
    PageInfo<JobCategoryView> page(int pageIndex, int pageSize, String cateGoryName);

    /**
     * 根据id加载类别详细信息
     * @param id 职位类别id
     * @return JobCategory
     */
    JobCategory findById(Integer id);

    /**
     * 保存职位类别信息
     * @param category 职位类别信息
     */
    void save(JobCategory category);

    /**
     * 根据id删除类别信息
     * @param id 类别id
     * @return 删除成功: true
     */
    boolean removeById(Integer id);

    /**
     * 加载出所有的父类别
     * @return 父类别列表
     */
    List<JobCategory> getParentCategories();

    /**
     * 编辑类别信息
     * @param category 职位类别
     */
    void edit(JobCategory category);
}
